<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JSON</title>

    <script>
        var obj='{"name":"孙悟空","age":18,"gender":"男"}';//JSON对象
        var arr='[1,2,"hello",true]';//JSON数组
        var obj1='{"arr":[1,2,3]}';
        var arr1='[{"name":"孙悟空","age":18,"gender":"男"},{"name":"孙悟空","age":18,"gender":"男"}]';
//json------>js对象   用 JSON.parse()
        var json='{"name":"孙悟空","age":18,"gender":"男"}';
        var o=JSON.parse(json);
        var o1=JSON.parse(arr);
        console.log(o.name);
        console.log(o1[3]);
//js对象------>json 用JSON.stringify()
        var obj3={name:"猪八戒",age:33,gender:"男"};
        var str=JSON.stringify(obj3);
        console.log(str);



 //eval()函数
        var str2="alert('hello');";
        eval(str2);
         var obj4='{"name":"二郎神","age":18,"gender":"男"}';//JSON对象
        var jo=eval("("+obj4+")");
        console.log(jo.name);
    </script>
</head>
<body>
<script>
    /*JSON是一个特殊的字符串，这个字符串可以被任意的语言识别，并且可以转换为任意语言中的对象，JSON在开发中主要用来数据交互
    * JSON  JavaScript Object Notation JS对象表示法
    *       JSON和JS对象的格式一样，只不过JSON字符串的属性名必须是双引号或者单引号
    * JSON分类:
    *     1.对象{}
    *     2.数组[]
    *JSON允许的值
    *       1.字符串
    *       2.数值
    *       3.布尔值
    *       4.null
    *       5.对象普通对象 （不包含函数）
    *       6.数组
    * 将JSON字符串转换为JS对象 JS提供了一个工具类 叫JSON
    *   这个对象可以帮助我们讲一个JSON转换为JS对象;也可以将一个JS对象转换为JSON
    * json----->js  用JSON.parse()
    *     JSON.parse()可以将JSON字符串转换为JS对象 它需要一个JSON字符串做为参数，会将该字符串转换为JS对象
    *js---->json 用JSON.stringify()
    *       JSON.stringify() 参数是JS对象 返回JSON字符串
    *
    *以下用的很少 了解
    * 在JSON在IE7及一下的版本 不支持 引入eval()函数用来执行一段字符串形式的JS代码，并将执行结果返回
    * 如果使用eval()函数执行的字符串中含有{}，它将会将{}当成代码块
    * 如果不希望当成代码块来执行 需要加括号
    * eval()这个功能很强大 可以执行一个字符串中的JS代码 但是在开发中很少使用
    *   首先执行性能差 它还具有安全隐患
    *
    * 最终方案
    * 如果需要兼容 IE7及以下的JSON操作，则可以引入一个外部的JS文件来处理
   * <script type="text/javascript" src="js/json2.js">
    *
    * */
</script>
</body>
</html>